package com.common.basis.entity;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 查询参数
 *
 * @param <T>
 * @author wangguochao
 */
@Data
public class BaseParam<T> implements Serializable {
    /**
     * 实体ID
     */
    private String id;
    /**
     * 第几页
     */
    private int page;
    /**
     * 每页条数
     */
    private int size;
    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate startTime;
    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate  endTime;

    public Page<T> page() {
        return new Page<T>(this.getPage(), getSize());
    }

    public int getSize() {
        return size == 0 ? 10 : size;
    }
    /**
     * 分页尾
     */
    public int getMax() {
        return this.getMin() + getSize();
    }

    /**
     * 分页首
     */
    public int getMin() {
        return page * getSize();
    }
}
